﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;

/// <summary>
/// Summary description for ModeloEditarProyecto
/// </summary>
public class ModeloEditarProyecto
{
    private String nombreProyecto = "";
    private String descripcionProyecto = "";
    private Conexion conn;

    public ModeloEditarProyecto()
	{
        conn = new Conexion();
	}

    public void setModel(String n, String des)
    {
        nombreProyecto = n;
        descripcionProyecto = des;
    }

    public int validarModelo( String idProyecto)
    {
        
        if (nombreProyecto == null || nombreProyecto.Length <= 0 || nombreProyecto.Length >= 100)
        {
            return -1;
        }

        if (descripcionProyecto == null || descripcionProyecto.Length <= 0 || descripcionProyecto.Length >= 300)
        {
            return -2;
        }

        try
        {
            bool conectar = conn.iniciarConexion();
            if (conectar)
            {

                SqlCommand cmd = new SqlCommand("verificarEdicionProyecto", conn.getConn());
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add(new SqlParameter("@nombreProyecto",
                                                           SqlDbType.VarChar,
                                                           100,
                                                           "nombreProyecto"
                                                        )
                                        );

                cmd.Parameters.Add(new SqlParameter("@idProyecto",
                                                           SqlDbType.Int,
                                                           0,
                                                           "idProyecto"
                                                        )
                                        );


                cmd.Parameters.Add(new SqlParameter("@outParam",
                                                           SqlDbType.Int,
                                                           0,
                                                           ParameterDirection.Output,
                                                           false,
                                                           0,
                                                           0,
                                                           "outParam",
                                                           DataRowVersion.Default,
                                                           null
                                                        )
                                        );

                cmd.Parameters[0].Value = nombreProyecto;
                cmd.Parameters[1].Value = idProyecto;
                cmd.UpdatedRowSource = UpdateRowSource.OutputParameters;

                int per = cmd.ExecuteNonQuery();

                int result = (int)cmd.Parameters["@outParam"].Value;

                conn.terminarConexion();

                if (result != -1)
                {
                    return -3;
                }

                else
                {
                    return 1;
                }

            }

            else
            {
                return -4;
            }
        }

        catch (Exception exc)
        {
            return -5;
        }

    }

    public DataTable getDatosProyecto(String idProyecto)
    {

        try
        {

            DataTable dt = new DataTable();

            DataColumn c1 = new DataColumn();
            c1.ColumnName = "nombreProyecto";
            DataColumn c2 = new DataColumn();
            c2.ColumnName = "descripcionProyecto";

            dt.Columns.Add(c1);
            dt.Columns.Add(c2);


            String query = "SELECT PROYECTO.NOMBREPROYECTO , PROYECTO.DESCRIPCIONPROYECTO " +
                           "FROM PROYECTO " +
                           " WHERE PROYECTO.IDPROYECTO = "+idProyecto+"";

            bool connected = conn.iniciarConexion();

            if (connected == true)
            {
                SqlDataReader rows = null;
                SqlCommand comm = new SqlCommand(query, conn.getConn());
                rows = comm.ExecuteReader();
                while (rows.Read())
                {
                    DataRow r = dt.NewRow();
                    r["nombreProyecto"] = rows[0].ToString();
                    r["descripcionProyecto"] = rows[1].ToString();
                    dt.Rows.Add(r);

                }

                conn.terminarConexion();

                return dt;
            }

            else
            {

                conn.terminarConexion();
                return null;
            }
        }

        catch (Exception exc)
        {

            return null;
        }
    }

    public bool editarProyecto(String idProyecto)
    {
        try
        {

            bool connected = conn.iniciarConexion();

            if (connected == true)
            {

                SqlCommand comm = new SqlCommand("UPDATE PROYECTO SET  NOMBREPROYECTO = '" + nombreProyecto + "' , DESCRIPCIONPROYECTO = '" + descripcionProyecto + "' WHERE PROYECTO.IDPROYECTO = " + idProyecto + "",
                                                 conn.getConn());

                int result = comm.ExecuteNonQuery();


                if (result == 0)
                {
                    conn.terminarConexion();
                    return false;
                }

                conn.terminarConexion();
                return true;

            }

            else
            {
                conn.terminarConexion();
                return false;
            }
        }

        catch (Exception exc)
        {
            return false;
        }
    }
}